package request

import (
	"github.com/flipped-aurora/gin-vue-admin/server/global"
	_const "github.com/flipped-aurora/gin-vue-admin/server/global/const"
	"github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
)

// QueryCommentCRequest c端查询接口请求参数
type QueryCommentCRequest struct {
	ContentID       int64            `json:"content_id" form:"content_id"`
	ParentCommentID int64            `json:"parent_comment_id" form:"parent_comment_id"`
	OrderBy         string           `json:"order_by" form:"order_by"`
	Order           _const.Order     `json:"order" form:"order"`
	PageInfo        request.PageInfo `json:"page_info"`
}

// AddCommentRequest 创建评论接口请求参数
type AddCommentRequest struct {
	ContentID       int64  `json:"content_id"`
	PublisherID     int64  `json:"publisher_id"`
	ParentCommentID int64  `json:"parent_comment_id"`
	AnswerCommentID int64  `json:"answer_comment_id"`
	CommentText     string `json:"comment_text"`
}

// UpdateCommentRequest 修改评论接口请求参数
type UpdateCommentRequest struct {
	ID          int64  `json:"id"`
	CommentText string `json:"comment_text"`
}

// GetCommentByUsername 通过用户名查询评论
type GetCommentByUsername struct {
	request.PageInfo
	UserName string `form:"username"`
}

// GetCommentById 根据评论id查询评论
type GetCommentById struct {
	CommentId int64 `json:"comment_id" form:"comment_id"`
}

// DeleteAdminCommentId 删除评论,admin
type DeleteAdminCommentId struct {
	CommentId int64 `json:"comment_id" form:"comment_id"`
}

// DeleteCCommentId 删除评论,c端
type DeleteCCommentId struct {
	UserId    int64 `json:"user_id" form:"user_id"`
	CommentId int64 `json:"comment_id" form:"comment_id"`
}

// ClickCount 统计点赞,点踩,收藏,分享数量
type ClickCount struct {
	CommentId int64 `json:"comment_id" form:"comment_id"`
	OpType    int64 `json:"op_type" form:"op_type"`
}

// CommentUserActionRequest 个人信息主页-查询用户评论操作记录
type CommentUserActionRequest struct {
	request.PageInfo
	UserID     int64             `json:"user_id" form:"user_id"`         // 用户id，不传时默认查询自己的评论操作记录
	ActionType global.ActionType `json:"action_type" form:"action_type"` // 操作类型。目前支持的操作类型 -1：发布，1-点赞，3-收藏
}
